Embeddable context sensitive  chat system

ABSTRACT

A system and method including a networked processor with a chat management engine operative to embed one or more context sensitive chat widgets in a web page and receive chat messages from the widgets, wherein the messages are associated with a web page context. The system may be further operable to exchange those messages among a plurality of users and determine a sentiment value for those chat messages. In some embodiments a promo engine may modify a web page in response to the sentiment value. For example and without limitation, altering the price for a product or service, adding a product or service, or removing a product or service. Dynamic demographic congregations may be formed that allow for trigger based advertising at a predetermined sentiment value, times or event. Some embodiments provide for coupling to social networks.

PRIORITY

This application claims the benefit of provisional application No.61/538,943, entitled “On Demand Based Embeddable Context Sensitive ChatSystem” by inventor Yuchao Zhuang, filed on Sep. 26, 2011 which isincorporate by reference as if fully set forth herein.

BACKGROUND

Current online chat systems offer instantaneous transmission oftext-based messages from sender to receiver through the Internet. Chatsystems may involve direct communications between individuals, or mayinvolve group communications, wherein communication occurs from onesender to many receivers. Chat services can either be implemented by thesite owners themselves, or by third party service providers. In thelatter case, a piece of script is usually embedded in the site owner'spage to asynchronously request services from third party serviceproviders. However, these chat client providers operate based on aglobal site structure models that do not take scope into account. Thecommunication is usually achieved through a centralized chat room whereall concurrent users on the site have access to, regardless of theirrespective virtual address based on the URL. An improvement overexisting chat systems would be an embeddable chat system that would takesuch concepts into account.

SUMMARY

Disclosed herein is a system and method including a networked processorwith a chat management engine operative to embed one or more contextsensitive chat widgets in a web page. A context sensitive chat widgetmay provide for specific instances of a chat session associated with theweb page item of interest. Certain web pages may have multiple chatsessions depending on the items of interest on the page.

The system may be further operable to receive chat messages from thewidgets, wherein the messages are associated with a web page context,exchange those messages among a plurality of users and determine asentiment value for those chat messages.

When vendors integrate a given portion of code into their websites, itwill pull the interactive chat widget code and execute it in a user'sbrowser every time when they visit the vendor's website. After the codeis executed by the user selecting a product or service on the web page,a chat widget may slide up from the right bottom corner on the browserdisplay. By clicking on the chat widget, a chat room will be created ondemand to allow the site visitors to communicate with each otheranonymously. System servers may be responsible for hosting the chat andanalytics services. Each message the user generates may be sent to theservers. The servers then process each message using sentiment and otheranalytic algorithms.

Certain embodiments may employ a promotional (Promo) engine to modify aweb page in response to the sentiment value. For example and withoutlimitation altering the price for a product or service, adding a productor service, or removing a product or service. Dynamic demographiccongregations may be formed around the web page context that allow fortrigger-based advertising at a predetermined sentiment value, time orevent.

The construction and method of operation of the invention, however,together with additional objectives and advantages thereof will be bestunderstood from the following description of specific embodiments whenread in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a functional block diagram of a client server system thatmay be employed for some embodiments according to the currentdisclosure.

FIG. 2 shows one possible user interface for an embeddable contextsensitive chat system.

FIG. 3 shows a diagram of how chat messages may appear.

FIG. 4 shows an embeddable context chat system with all messages hidden.FIG. 5 of the drawings shows an embodiment of item-specific chatthreads.

FIG. 6 of the drawing shows a high-level flow chart of elements whichmay be found in an embeddable context chat system.

FIG. 7 of the drawings show a high-level flow chart of a method toassign users to a specific chat room.

FIG. 8 shows a system that may be employed for certain embodiments ofthe current disclosure.

FIG. 9 shows a flowchart a possible embodiment of an embeddable contextsensitive chat system.

FIG. 10 shows an illustration of an embodiment according to certainaspects of the present disclosure.

FIG. 11 shows a method that may be employed for sentiment analysis.

DESCRIPTION

Generality of Invention

This application should be read in the most general possible form. Thisincludes, without limitation, the following:

References to specific techniques include alternative and more generaltechniques, especially when discussing aspects of the invention, or howthe invention might be made or used.

References to “preferred” techniques generally mean that the inventorcontemplates using those techniques, and thinks they are best for theintended application. This does not exclude other techniques for theinvention, and does not mean that those techniques are necessarilyessential or would be preferred in all circumstances.

References to contemplated causes and effects for some implementationsdo not preclude other causes or effects that might occur in otherimplementations.

References to reasons for using particular techniques do not precludeother reasons or techniques, even if completely contrary, wherecircumstances would indicate that the stated reasons or techniques arenot as applicable.

Furthermore, the invention is in no way limited to the specifics of anyparticular embodiments and examples disclosed herein. Many othervariations are possible which remain within the content, scope andspirit of the invention, and these variations would become clear tothose skilled in the art after perusal of this application.

Lexicography

The term “declarative language” generally refers to a programminglanguage that allows programming by defining the boundary conditions andconstraints and letting the computer determine a solution that meetsthese requirements. Many languages applying this style attempt tominimize or eliminate side effects by describing what the program shouldaccomplish, rather than describing how to go about accomplishing it.This is in contrast with imperative programming, which requires anexplicitly provided algorithm.

The term “HTML Injection” generally refers to injecting HTML code into aweb server's response to alter the content to the end user. This is alsoknown as cross site scripting.

The term “host machine” generally refers to a single processor-basedmachine that includes the elements of the system under discussion.However, this disclosure should not be read to limited a host machine inthat manner when one having skill in the art will recognize that one ormore of those elements may be performed remotely.

The term “extension” and “browser extension” and the like generallyrefer to a computer program, applet or instructions that extend thefunctionality of a web browser in some way. Depending on the browser,the term may be distinct from similar terms such as plug-in or add-on.

The terms “software as a service” or “SaaS” or “on-demand software”generally mean a software delivery model in which software and itsassociated data are hosted centrally such as on the Internet or cloudand accessed by users using a client. SaaS is a common delivery modelfor many business applications, including accounting, collaboration,customer relationship management (CRM), management information systems(MIS), enterprise resource planning (ERP), invoicing, human resourcemanagement (HRM), content management (CM) and service desk management.

The term “structured data” generally refers to data stored in ameaningful fashion such that a processor may be instructed to access thedata. Examples include but are not limited to databases, relationaldatabases, text files, XML file and the like.

The word “Middleware” generally means computer software that connectssoftware components or applications. The software consists of a set ofenabling services that allow multiple processes running on one or moremachines to interact across a network. Middleware conventionallyprovides for interoperability in support of complex, distributedapplications. It often includes web servers, application servers, andsimilar tools that support application development and delivery such asXML, SOAP, and service-oriented architecture.

The term “virtual machine” or “VM” generally refers to a self-containedoperating environment that behaves as if it is a separate computer eventhough it is part of a separate computer or may be virtualized usingresources form multiple computers.

The terms “widget,” “control” and the like generally refer to anapplication, or a component of an interface, that enables a user toperform a function or access a service.

The acronym “XML” generally refers to the Extensible Markup Language. Itis a general-purpose specification for creating custom markup languages.It is classified as an extensible language because it allows its usersto define their own elements. Its primary purpose is to help informationsystems share structured data, particularly via the Internet, and it isused both to encode documents and to serialize data.

DETAILED DESCRIPTION

Specific examples of components and arrangements are described below tosimplify the present disclosure. These are, of course, merely examplesand are not intended to be limiting. In addition, the present disclosuremay repeat reference numerals and/or letters in the various examples.This repetition is for the purpose of simplicity and clarity and doesnot in itself dictate a relationship between the various embodimentsand/or configurations discussed.

System Elements

Processing System

The methods and techniques described herein may be performed on aprocessor based device. The processor based device will generallycomprise a processor attached to one or more memory devices or othertools for persisting data. These memory devices will be operable toprovide machine-readable instructions to the processors and to storedata. Certain embodiments may include data acquired from remote servers.The processor may also be coupled to various input/output (I/O) devicesfor receiving input from a user or another system and for providing anoutput to a user or another system. These I/O devices may include humaninteraction devices such as keyboards, touch screens, displays andterminals as well as remote connected computer systems, modems, radiotransmitters and handheld personal communication devices such ascellular phones, “smart phones”, digital assistants and the like.

The processing system may also include mass storage devices such as diskdrives and flash memory modules as well as connections through I/Odevices to servers or remote processors containing additional storagedevices and peripherals.

Certain embodiments may employ multiple servers and data storage devicesthus allowing for operation in a cloud or for operations drawing frommultiple data sources. The inventor contemplates that the methodsdisclosed herein will also operate over a network such as the Internet,and may be effectuated using combinations of several processing devices,memories and I/O. Moreover any device or system that operates toeffectuate techniques according to the current disclosure may beconsidered a server for the purposes of this disclosure if the device orsystem operates to communicate all or a portion of the operations toanother device.

The processing system may be a wireless device such as a smart phone,personal digital assistant (PDA), laptop, notebook and tablet computingdevices operating through wireless networks. These wireless devices mayinclude a processor, memory coupled to the processor, displays, keypads,WiFi, Bluetooth, GPS and other I/O functionality. Alternatively theentire processing system may be self-contained on a single device.

The methods and techniques described herein may be performed on aprocessor based device. The processor based device will generallycomprise a processor attached to one or more memory devices or othertools for persisting data. These memory devices will be operable toprovide machine-readable instructions to the processors and to storedata, including data acquired from remote servers. The processor willalso be coupled to various input/output (I/O) devices for receivinginput from a user or another system and for providing an output to auser or another system. These I/O devices include human interactiondevices such as keyboards, touchscreens, displays, pocket pagers andterminals as well as remote connected computer systems, modems, radiotransmitters and handheld personal communication devices such ascellular phones, “smart phones” and digital assistants.

The processing system may also include mass storage devices such as diskdrives and flash memory modules as well as connections through I/Odevices to servers containing additional storage devices andperipherals. Certain embodiments may employ multiple servers and datastorage devices thus allowing for operation in a cloud or for operationsdrawing from multiple data sources. The inventor contemplates that themethods disclosed herein will operate over a network such as theInternet, and may be effectuated using combinations of severalprocessing devices, memories and I/O.

The processing system may be a wireless device such as a smart phone,personal digital assistant (PDA), laptop, notebook and tablet computingdevices operating through wireless networks. These wireless devices mayinclude a processor, memory coupled to the processor, displays, keypads,WiFi, Bluetooth, GPS and other I/O functionality.

In general, the routines executed to implement the current disclosure,may be implemented as part of an operating system or a specificapplication, component, program, object, module or sequence ofinstructions referred to as “computer programs,” apps, widgets, and thelike. The computer programs typically comprise one or more instructionsset at various times in various memory and storage devices in acomputer, and that, when read and executed by one or more processors ina computer, cause the computer to perform operations necessary toexecute elements involving the various aspects of the invention.Moreover, while the invention has been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various embodiments are capable of beingdistributed as a program product in a variety of forms, and that thecurrent disclosure applies equally regardless of the particular type ofmachine or computer-readable media used to actually effect thedistribution. Examples of computer-readable media include but are notlimited to recordable type media such as volatile and non-volatilememory devices, floppy and other removable disks, hard disk drives,optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), DigitalVersatile Disks, (DVDs), etc.), among others, and transmission typemedia such as digital and analog communication links.

Client Server Processing

FIG. 1 shows a functional block diagram of a client server system 100that may be employed for some embodiments according to the currentdisclosure. In the FIG. 1 a server 110 is coupled to one or moredatabases 112 and to a network 114. The network may include routers,hubs and other equipment to effectuate communications between allassociated devices. A user accesses the server by a computer 116communicably coupled to the network 114. The computer 116 includes asound capture device such as a microphone (not shown). Alternatively theuser may access the server 110 through the network 114 by using a smartdevice such as a telephone or PDA 118. The smart device 118 may connectto the server 110 through an access point 120 coupled to the network114. The mobile device 118 includes a sound capture device such as amicrophone.

Conventionally, client server processing operates by dividing theprocessing between two devices such as a server and a smart device suchas a cell phone or other computing device. The workload is dividedbetween the servers and the clients according to a predeterminedspecification. For example in a “light client” application, the serverdoes most of the data processing and the client does a minimal amount ofprocessing, often merely displaying the result of processing performedon a server.

According to the current disclosure, client-server applications arestructured so that the server provides machine-readable instructions tothe client device and the client device executes those instructions. Theinteraction between the server and client indicates which instructionsare transmitted and executed. In addition, the client may, at times,provide for machine readable instructions to the server, which in turnexecutes them. Several forms of machine readable instructions areconventionally known including applets and are written in a variety oflanguages including Java and JavaScript.

Client-server applications also provide for software as a service (SaaS)applications where the server provides software to the client on an asneeded basis.

In addition to the transmission of instructions, client-serverapplications also include transmission of data between the client andserver. Often this entails data stored on the client to be transmittedto the server for processing. The resulting data is then transmittedback to the client for display or further processing.

One having skill in the art will recognize that client devices may becommunicably coupled to a variety of other devices and systems such thatthe client receives data directly and operates on that data beforetransmitting it to other devices or servers. Thus data to the clientdevice may come from input data from a user, from a memory on thedevice, from an external memory device coupled to the device, from aradio receiver coupled to the device or from a transducer coupled to thedevice. The radio may be part of a wireless communications system suchas a “WiFi” or Bluetooth receiver. Transducers may be any of a number ofdevices or instruments such as thermometers, pedometers, healthmeasuring devices and the like.

A client-server system may rely on “engines” which includeprocessor-readable instructions (or code) to effectuate differentelements of a design. Each engine may be responsible for differingoperations and may reside in whole or in part on a client, server orother device. As disclosed herein a display engine, a data engine, anexecution engine, a user interface (UI) engine, a promo engine, asentiment engine, and the like may be employed. These engines may seekand gather information about events from remote data sources and controlfunctionality locally and remotely.

References in the specification to “one embodiment”, “an embodiment”,“an example embodiment”, etc., indicate that the embodiment describedmay include a particular feature, structure or characteristic, but everyembodiment may not necessarily include the particular feature, structureor characteristic. Moreover, such phrases are not necessarily referringto the same embodiment. Further, when a particular feature, structure orcharacteristic is described in connection with an embodiment, it issubmitted that it is within the knowledge of one of ordinary skill inthe art to effect such feature, structure or characteristic inconnection with other embodiments whether or not explicitly described.Parts of the description are presented using terminology commonlyemployed by those of ordinary skill in the art to convey the substanceof their work to others of ordinary skill in the art.

Context Sensitive Chat

FIG. 2 shows one possible user interface for an embeddable contextsensitive chat system. The embeddable context sensitive chat system mayinclude a web browser 100 with a visual display element (“chat bar”)200. The chat bar 200 may appear when the user visits a predeterminedwebsite that has the chat system enabled. A message counter 150 mayindicate how many messages have been received and a portion of thedisplay may show a message from a user 300. When a user submits amessage (posts), the message may be enclosed in a box or other indiciawhich slides up from bottom up from the chat bar 200. In certainembodiments, a random icon 175 may be assigned to users foridentification purpose.

One having skill in the art will appreciate that conventionalprogramming tools and languages such as Java, HTML and the like may beemployed to effectuate the current disclosure. In particular HTMLinjection, browsers extensions and “plug-ins” may be used.

FIG. 3 shows a diagram of how chat messages 300, 310, 320 may appear. Asindicated by the directional arrows within the FIG. 3, the messages 300,310, 300 will scroll upwards from the chat bar 200. As users typeadditional messages in, the messages will appear below the existingmessages 300, 310, 320. In addition, the message counter 150, willincrement accordingly with the amount of message that have beenreceived. Each subsequent message may float up and hide once they reacha predetermined height such as that indicated by the dotted lines 350.

FIG. 4 shows an embeddable context chat system with all messages hidden.In operation, when a user clicks or otherwise selects any area on thebrowser outside of the chat area, the embedded chat system will hide anymessages and minimize its appearance to the chat bar 200.

One having skill in the art will appreciate that that chat bar andassociated messages may be effected both as an anchored window and as afloating window allowing a user to position it or size it to meet anyuser requirements.

FIG. 5 of the drawings shows an embodiment of item-specific chatthreads. A user may chat based on a specific item on a web pageincluding an image 500, a hyper-link 510, a specific text that appearson a web page 520, and the like. The user may click on or otherwiseselect on any of the items 500, 510, 520, and a message box will appearnear where the item is clicked. Certain embodiments will extract uniqueidentifiers for these items 500, 510, 520 and store them in a structureddata store such as a database. Should an item be updated, changed, ordeleted, the embedded chat system may update any of the messagesassociated with those items. In other embodiments instead of utilizing amouse pointer to click on specific items, a user may instead indicatespecific items by finger tapping or utilizing other types of handgestures.

In certain embodiments if a user finds a particular topic interesting,they can drag and drop the message counter 150 to a region of the screento participate in the location-based chat. In location-based chat adialogue box with a user input may appear thus allowing a user to seemessages and enter messages on the topic related to the item at thatlocation. Once the user clicks off that location of interest, the chatarea dialogue box will hide (or minimize).

FIG. 6 of the drawing shows a high-level flow chart of elements whichmay be found in an embeddable context chat system. At a step 1000 a uservisits a website with an embeddable context chat system. At a step 1010a webpage within the website which the user visits will make a call toan embeddable context chat system server through an embedded script. Ata step 1020 the embedded script retrieves a chat widget and superimposesthe chat widget on the website. At a step 1030 the script detects theuser's current URL and utilizes it to determine which chat room toassign the user to.

FIG. 7 of the drawings show a high-level flow chart of a method toassign users to a specific chat room. Users may only send and receivemessages among members within a chat room. There may be more than onechat room on a page. The method begins at a flow label 1100. A newlyarriving user will automatically join a chat room in response to varioussettings and factors. If the number of concurrent users is less than apredetermined amount, the flow moves to a step 1110. If the number ofconcurrent users is equal to a predetermined amount, the flow moves to astep 1120. And if the number of concurrent users is greater than apredetermined amount, the flow moves to a step 1130. At the step 1130the flow moves to a step 1200 for operation of efficient allocationalgorithm. At a step 1131 the user is joined to a embeddable contextsensitive chat room. At a step 1140 community moderation is performed(infra).

For example and without limitation, the number of users in a chat roommay be a function of the number of concurrent users at any given time.The flow chart of FIG. 7 may be utilized to determine the number ofusers within each chat room. In this example there will be a maximumlimit of users within each chat room. Depending on how many currentconcurrent users there are and what the maximum limit is, the user maybe assigned to different chat rooms. If the current concurrent usercount within the chat system has not reached the aforementioned limit,then the user will be assigned to an existing chat room. If the numberequals or exceeds a predetermined maximum limit, then either a new chatroom will be created or the user may be assigned to an existing, yetopen, chat room. After the user has been assigned a chat room,communications (or posts) in that chat room are limited to those whohave also joined that chat room.

Chat Moderation

A community moderation algorithm may be used to screen messages betweenusers within the chat room. Chat room management may be effectuatedusing both page user limits and chat room user limits. For example andwithout limitation, if a group of users communicates with a user withina chat room and the user becomes abusive then any of the users mayfilter out messages from the abusive user. The filtering is accomplishedthrough a community moderation algorithm which may maintain a list ofusers who have indicated that they wish to filter out communicationsfrom the abusive user.

Communications between the abusive user and the other users may first gothrough the community moderation before being sent to the chat room. Anyuser that elects to filter out the contents of the abusive user will notreceive any communication, as community moderation will prevent thatcommunication from going over to the users. Furthermore, the users mayelect to completely ban the abusive user from any communication. If thisoccurs, then any communication from the abusive user will be stopped bycommunity moderation.

In certain embodiments community moderation may be effectuatedautomatically by analyzing keywords or other sentiment indicator (infra)that would trigger a limitation on that specific user.

One having skill in the art will recognize that certain communicationsmay not be text and may instead be formed as icons, emoticons and othergraphical images. In some embodiments images, or collections ofcharacters that effect an image may convey sentiment value.

System Operation

FIG. 8 shows a system 800 that may be employed for certain embodimentsof the current disclosure. In FIG. 8 one or more users 810 are coupledto the Internet 812. Further coupled to the Internet is a server 814.The server includes a chat management engine 816, a sentiment engine 818and a promo engine 820. The server 814 is further coupled to astructured data source 822. Also coupled to the Internet 812 is at leastone web server 828 and one or more vendors 824 and 826.

In operation an embodiment may operate by injecting code into web pagesdelivered by the web server 828 to the users 810. The code segmentswould provide a widget to track user's interactions with the deliveredweb page. When a user 810 is interested in a product or service, theuser 810 indicates this preference and the widget provides a chat toolas described herein (supra). The chat management engine 816 facilitatesthe code injection and chat management operations for providing chatsessions that are context sensitive.

During chat sessions the sentiment engine 818 may monitor chat sessionsand messaging to determine a level of sentiment for each user and foreach congregation. This sentiment indicator provides an immediate valueindicator for the target entity. For example and without limitation, aweb site may be streaming a video of a live concert. Severalcongregations may form about the live concert, each having an exchangeof chat messages concerning a particular song. Sentiment analysis givesimmediate feedback, in a small set of easy to understand numbers, of theuser's feelings about that particular song. Moreover, an averagesentiment value may be determined throughout the entire concert, anddeviations from the average may indicate congregation's preferences forcertain songs over others. In keeping with this example, a musicproducer, producing a live album of the concert, may use the sentimentvalue for each song to gauge whether or not to include a particular songon an album, or release one or more of the songs as singles.

Further by way of example a product manager from a vendor 824 maydynamically price a product and measure in a short time, the sentimentchange for a specific congregation. Moreover congregations may be formedabout similar product, or the same product priced at different points tomeasure overall sentiment. If a vendor 824 offers a product at a firstprice and only a small congregation forms, then the vendor may offer newusers 810 the same product but at a lower price to see if a larger (ormore) congregation forms or if the congregation indicates a highersentiment value.

Dynamic Demographics

The promo engine 820 may operate to effect changes to the contextsensitive entity. The promo engine 820 may change prices on products oroffer new products to the congregation. Moreover, the changes might begeared towards creating a larger congregation, For example by changing acolor scheme or page placement of a product and the like. The activitiesof the promo engine 820 may be controlled by predetermined parameters.For example and without limitation, trigger points may be set thatrelate a product or service offering to a specific sentiment value thusautomating operations of the promo engine 820. In response to thesentiment and triggers, some embodiments may:

-   -   1. Offer new products and prices to the congregation;    -   2. Offer price discounts on the context sensitive, and    -   3. Display one or more advertisements.

Trigger points may include raw or adjusted sentiment indicators, dateand time value, social events, sporting events and the like. For exampleand without limitations triggers may be formed to:

-   -   Offer a product for sale when a baseball team hits a home run        and sentiment value reaches a predetermined level;    -   Offer a song for free download when a band is playing that song        during a live broadcast and the sentiment reaches a        predetermined level;    -   Decrease a product price when a congregation reaches a        predetermined size.

Trigger points may allow for complete automations and coordinationbetween multiple vendors to offer associated products or services inresponse to certain sentiments. For example and without limitation, atuxedo rental store may offer a discount when sentiment value forevening gowns reaches a certain point.

One having skill in the art will recognize that although shownseparately in FIG. 8, elements of this disclosure may be combined toeffectuate the system of FIG. 8. For example and without limitation theserver 814, the web server 828 and the vendors 824 and 826 may operatefrom the same processing device.

FIG. 9 shows a flowchart a possible embodiment of an embeddable contextsensitive chat system 900. The steps in this method are illustrativeonly and do not necessary need to be performed in the given order theyare presented herein. Some steps may be omitted completely. In FIG. 9 aprocess starts at a flow label 910. At a step 912 a widget is placed ona web page. The widget is sensitive to entities on the page and allowsfor a chat session to begin.

At a step 914 users are allowed to enter chat sessions. In someembodiments the users may be authenticated to the system to verify theyare human users as opposed to bots.

At a step 916 a sentiment value is calculated for the posts in the chatsessions.

At a step 918 a trigger value is calculated in response to the sentimentvalue, the context, the entity or some combination thereof. If thetrigger is reached, flow proceeds to a step 922. If the trigger is notreached, then flow proceeds to a flow label 924.

At a step 922 an activity is performed in response to the trigger.

At a flow label 924 the method ends.

Chat Operation

FIG. 10 shows an illustration of an embodiment according to certainaspects of the present disclosure. In FIG. 10 a chat widget 1010 isdisplayed on a screen such as a web browser or other interface. The chatwidget 1010 may have a district shape and be operable to displayinstructions and to receive input from a user in an input area 1012. Thechat widget 1010 may also provide indicia representing a number of users(shown as 93 in FIG. 10) or other control information. Each message 1014is displayed “stacked” on the display according to the age of themessage. Some embodiments may include a timestamp on the message, andprovide for removal of messages when the poster is no longer involved inthe conversations. The messages may have indicia representing the userwho posted the message. The indicia may be an icon, photograph or otherpicture. In some embodiments the user may be coupled to other socialnetworking sites such as Facebook and/or Twitter. This provides forusing indicia associated with those social networked sites such as aprofile picture. A control 1016, such as a slider allows a user toscroll though the messages.

In operation a user selects a product displayed on the web page (or anassociated page) and the chat widget 1010 appears. Along with any chatmessages, communications from the organization sponsoring the product orservice may also be display. These communications may include specialpromotional offers. Each chat (or a portion thereof) may be stored forlater analysis and further processed to extract sentiment value.

The chat control may be effectuated using discreet controls in Java. Forexample and without limitations controls such as input boxes and displayboxes may be coded to effect a chat control by a chat engine. Inaddition there are commercially available chat controls which may beemployed by a chat engine in some embodiments.

Sentiment Analysis

Sentiment analysis or opinion mining refers to using computationallinguistics, and text analytics to identify and extract subjective wordand phrases from chat postings. Certain words and sentence structuresindicate the attitude of a writer with respect the topic, which might bethe product, under discussion.

In some embodiment sentiment analysis includes classifying the polarityof a given text to determine whether or not it is positive, negative, orneutral. Polarity may also include predetermined positive and negativesentiment strength score. This may be effectuated using lookup tableshaving a relationship between words and sentiment. For example andwithout limitation, embedded chat messages may be gleaned for wordswhich are then tested against a structured data source to see if thereis an associated sentiment value. Total sentiment scores may beaggregated to a particular user. In some embodiments a score per totalwords value may be calculate to scale sentiment between chatty and lesschatty users. A user who simply writes “I like it.” could then berelatively compared to a user who writes “This is awesome, I love it!”on their chat messages.

Certain embodiments may employ servers and clients to automate sentimentanalysis of embedded chats and identify the appropriate target on theweb page. These embodiments may employ conventional techniques such aslatent semantic analysis, support vector machines, “bag of words,”semantic orientation, and the like.

FIG. 11 shows a method that may be employed for sentiment analysis. Thesteps in the method are illustrative only and do not necessary need tobe performed in the given order they are presented herein. Some stepsmay be omitted completely. The method begins at a flow label 1110.

At a step 1112 a user selects a product that is displayed in a browser.Depending on the computing device, the user may right-click to selectdevices, however different operating systems and devices provide fordiffering ways to indicate an area of a web page.

At a step 1114 a chat display appears on the user's display. Certainembodiments may provide for multiple chat displays, including multipledisplays associated with a single product or service.

At a step 1116 the user enters a phrase or sentence into the chatdisplay. Some embodiments may transmit the text in the chat message to aserver for processing, while others may process the chat text locally.In certain embodiments the processing of the chat might be divided alongclient-server responsibilities such that no one device does all theprocessing.

At a step 118 the verbs, adverbs and adjectives are parsed out from thechat text.

At a step 1120 the verbs, adverbs and adjectives are compared toinformation in a structured data source to determine the sentimentstrength. For example and without limitation, a word like “like” may begiven a certain sentiment value whereas a phrase like “really like” maybe given a higher value. The sentiment engine may have differentsentiment scales depending on the product or service under discussion.For example and without limitation, if a certain dynamic demographic isapt to communicate with a plethora of highly sentimental words orphrases, but don't actually share a high value of sentiment, then thesentiment engine can be programmed to discount certain words or phrases.In some embodiments a specific lookup table may be employed for specificproducts or services.

At a step 1122 nouns may be parsed out of the chat text. The nouns maylink the sentiment to the specific product or provide further assurancethat the sentiment expressed is actually tied to something on the webpage display.

At a step 1124 the nouns are compared to a product related data sourceto check for alternative descriptors that may relate to a product orservice.

At a step 1128 the results of the sentiment expressed and the associatedproduct are stored for later analysis.

At a flow label 1130 the method ends.

One having skill in the art will appreciate that certain of these stepsmay be simplified or combined to effect a more efficient operation. Forexample and without limitation, a sentiment engine may process each wordwithout regard to whether it is a verb, adjective, or noun by comparingit to a data source listing all likely words in use. Moreover, new wordsand phrases may be identified and added to the data source for futurereference. In addition, there are publically available sentiment engineswhich may also be employed to effect some embodiments.

Besides sentiment analysis, users may also be characterized byinvolvement in embedded chat sessions. For example and withoutlimitation, certain users may be active participants using a widevariety and frequency of high sentiment words, while other users mayrarely post. Correlations between users posts, sentiment value andpurchase likelihood may be tracked to further aid sentiment analysis. Auser who merely write “I like it.” and then purchases, may be given moresentiment weight than a user who writes “This is awesome, I love it!”and rarely, if ever purchases. Certain embodiments of a sentiment enginemay adjust a user post's sentiment value based on the historic sentimentrating of the posting user. In real-time (or pseudo real-time) analysisa user's sentiment rating may be augmented or reduced from a rawsentiment value.

Some embodiments may also include running totals of sentiment per chatroom or group. Collectively the chat room members form a dynamiccongregation with a common interest about the object of thecontextualized chat session. For example and without limitation, a chatroom may have multiple users expressing both likes and dislikes of aproduct or service. The aggregated total sentiment score for the chatroom will indicate the degree of that congregation's feelings. Runningaverages and trends could also be calculated based on the more recentpostings and may include adjustments for individual user's historicsentiment valuation.

Cross Advertising

For a given dynamic demographic, advertisers may also promote productsand services on the web page where a chat widget is operating. Forexample and without limitation, some embodiments may advertisecomplementary products when triggers reach a specific value or range ofvalues. If the product is an upcoming concert and the dynamicdemographic is highly favorable to the band or type of music, a musicpromoter from a similar genre may advertise an upcoming performance by agroup with similar characteristics. Or a hotel near the music venuemight promote specials hoping some of the music enthusiasts opt forstaying in the hotel after a concert.

In some embodiments the users them selves may negotiatecross-promotional activities and acquire permissions to set triggers forpromotional activity on products and services that are associated withdifferent sellers. For example and without limitation, two sellers mayagree to allow each other to promote their products on each others websites using the chat widget described herein. Accordingly they would begranted sufficient permissions and be given appropriate controls toeffect those promotions. One user allows another user to set triggersand run promotion on the user's web page.

User Portal

Certain embodiments may incorporate a user portal for product andservice providers to manage setting for their promotional activity. Theportal provides not only controls for a product/service provider, butprovides a platform for operation between multiple product/serviceproviders. Without limitation, operation of the portal may provide oneor more of the following:

-   -   Management of trigger points;    -   Management of sentiment valuation;    -   Management of sentiment value word and criteria;    -   Management of cross-promotional activities;    -   Communications between product/service providers to arrange        cross-promotional activities, and    -   Suggestions of other product/services that may provide        cross-promotional opportunities.

One having skill in the art will recognize that the user portalfunctions may be effectuated by exposing the portal functions as a webservice or through various APIs thus allowing for these controlfunctions to be incorporated into higher level software or other websites.

Reports

The results of the chat and promotional activity may be reported usingboth static and interactive reporting tools. A report engine controlswhat data is available to which user. A user may login to anadministration portal and be given options to view results fromoperations as disclosed herein. Without limitation, some embodiments mayinclude one or more of the following in the reporting operations:

-   -   Color for expressing sentiment of the users;    -   A heat map where the individual values contained in a matrix are        represented as colors showing popularity, sentiment, users and        the like;    -   Interactive charting wherein users can click through to the        underlying data;    -   Popularity of product/service types across a product line or a        product line from several vendors;    -   Heat index to trigger analysis, and    -   Trigger to user purchase analysis showing the affect of trigger        point advertisement.

Reporting may be effectuated using queries to a data source containing ahistory of the activity of the chats and related purchases and useractivities. The queries result in data for display which may bedisplayed using standard graphical controls or commercial reportingtools.

The above illustration provides many different embodiments orembodiments for implementing different features of the invention.Specific embodiments of components and processes are described to helpclarify the invention. These are, of course, merely embodiments and arenot intended to limit the invention from that described in the claims.

Although the invention is illustrated and described herein as embodiedin one or more specific examples, it is nevertheless not intended to belimited to the details shown, since various modifications and structuralchanges may be made therein without departing from the spirit of theinvention and within the scope and range of equivalents of the claims.Accordingly, it is appropriate that the appended claims be construedbroadly and in a manner consistent with the scope of the invention, asset forth in the following claims.

1. A system comprising: at least one server coupled to a network; a chatmanagement engine coupled to said server, said chat management engineoperative to: embed one or more context sensitive chat widgets in a webpage; receive chat messages from the widgets, said messages associatedwith a web page context, and exchange those messages among a pluralityof users.
 2. The system of claim 1 further including: a sentiment engineoperable to calculate a sentiment value for the chat messages.
 3. Thesystem of claim 2 wherein the sentiment is calculated on a per userbasis or on an entire congregation.
 4. The system of claim 2 furtherincluding: a promo engine operable to modify a web page in response to asentiment value.
 5. The system of claims 4 wherein said modify a webpage includes either altering the price for a product or service, addinga product or service, or removing a product or service.
 6. A methodincluding: transmitting processor instructions operable to present oneor more chat interfaces, each chat interface associated with an image;receiving a chat message from said chat interface, said chat messageassociated with said image, and coordinating the exchange of said chatmessage with a plurality of users.
 7. The method of claim 6 wherein theinstructions are included in either an HTML file or an XML file.
 8. Themethod of claim 7 wherein the file includes multiple images and eachimage is associated with a separate chat interface.
 9. The method ofclaim 6 further including: calculating a sentiment value of said chatmessages.
 10. The method of claim 9 further including: modifying theimage in response to the sentiment value.
 11. The method of claim 10wherein said modifying includes at least one of altering the price forthe object the image represents or altering the image.
 12. The method ofclaim 9 wherein the sentiment value is calculated for at least one ofeither an individual user or a congregation of users.
 13. The method ofclaim 6 further including: calculating a sentiment value of said chatmessages; comparing the sentiment value to a predetermine trigger value,and transmitting new information in response to said comparing.
 14. Themethod of claim 13 wherein the trigger value includes at least on of atime value or a date value.
 15. The method of claim 13 wherein thetrigger value includes an event.
 16. One or more processor readablestorage devices having processor readable code embodied on saidprocessor readable storage devices, said processor readable code forprogramming one or more processors to perform a method comprising:transmitting processor instructions operable to present one or more chatinterfaces, each chat interface associated with an image; receiving achat message from said chat interface, said chat message associated withsaid image, and coordinating the exchange of said chat message with aplurality of users.
 17. The device of claim 16 wherein the instructionsare included in either an HTML file or an XML file, said file includingmultiple images and each image associated with a separate chatinterface.
 18. The device of claim 16 wherein said method furtherincludes: calculating a sentiment value of said chat messages, whereinsaid sentiment value is calculated for at least one of either anindividual user or a congregation of users, and modifying the image inresponse to the sentiment value.
 18. (canceled)
 19. The device of claim16 wherein the chat interface includes indicia representative of theuser.
 20. The device of claim 18 wherein the indicia is related to asocial network web page.